package cn.edu.wfit.modules.infomanagement.mapper;

import java.util.List;
import cn.edu.wfit.modules.infomanagement.domain.TBusReservation;

/**
 * 存储教师预约记录Mapper接口
 * 
 * @author zhanghao
 * @date 2025-11-07
 */
public interface TBusReservationMapper 
{
    /**
     * 查询存储教师预约记录
     * 
     * @param id 存储教师预约记录主键
     * @return 存储教师预约记录
     */
    public TBusReservation selectTBusReservationById(Long id);

    /**
     * 查询存储教师预约记录列表
     * 
     * @param tBusReservation 存储教师预约记录
     * @return 存储教师预约记录集合
     */
    public List<TBusReservation> selectTBusReservationList(TBusReservation tBusReservation);

    /**
     * 新增存储教师预约记录
     * 
     * @param tBusReservation 存储教师预约记录
     * @return 结果
     */
    public int insertTBusReservation(TBusReservation tBusReservation);

    /**
     * 修改存储教师预约记录
     * 
     * @param tBusReservation 存储教师预约记录
     * @return 结果
     */
    public int updateTBusReservation(TBusReservation tBusReservation);

    /**
     * 删除存储教师预约记录
     * 
     * @param id 存储教师预约记录主键
     * @return 结果
     */
    public int deleteTBusReservationById(Long id);

    /**
     * 批量删除存储教师预约记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTBusReservationByIds(Long[] ids);

    /**
     * 根据日期查询教师预约记录
     *
     * @param dateId 日期ID
     * @return 教师预约记录集合
     */
    public List<TBusReservation> selectTBusReservationByDateId(Long dateId);
    /**
     * 根据教师id和预约状态查询预约记录
     *
     * @param tBusReservation 存储教师预约记录
     * @return 存储教师预约记录集合
     */
    public List<TBusReservation> selectTBusReservationListByTeacherIdAndStatus(TBusReservation tBusReservation);

     /**
     * 根据教师id和预约日期查询预约记录
     *
     * @param tBusReservation 存储教师预约记录
     * @return 存储教师预约记录
     */
    TBusReservation selectTBusReservationByTeacherIdAndDateId(TBusReservation tBusReservation);
}
